package com.guet.niit.util;

import com.guet.niit.Login.pojo.User;
import javafx.scene.image.Image;

import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.*;

public class PhotoManage {
    /**
     * 获取图片属性
     * @param file
     * @return
     */
    public static Map<String,String> getPhotoProperties(File file){
        //获取图片的绝对路径
        System.out.println(file);
        //获取原始图片名
        String fileAbsolutePath = file.getAbsolutePath();
        String[] parts = fileAbsolutePath.split("\\\\");// 使用双反斜杠进行转义
        String originalPhotoName = parts[parts.length-1];//获取最后一个部分
        //获取图片后缀名
        String suffix = originalPhotoName.substring(originalPhotoName.lastIndexOf("."));
        //使用UUID重新生成图片名，防止图片名称重复造成文件覆盖
        String photoName = UUID.randomUUID().toString() + suffix;
        //装载集合
        Map<String,String> photoProperties = new HashMap<>();
        photoProperties.put("fileAbsolutePath",file.getAbsolutePath());
        photoProperties.put("photoName",photoName);
        return photoProperties;
    }

    /**
     * 图片下载
     * @param fileAbsolutePath
     * @param photoName
     * @return
     */
    public static String downLoad(String fileAbsolutePath,String photoName){
        //创建一个目录对象
        File dir = new File("D:/img/");
        String dirString = dir.toString();
        //判断当前目录是否存在
        if (!dir.exists()){
            //目录不存在，需要创建
            dir.mkdirs();
        }
        //获得图片源路径
        Path resourcePath = Paths.get(fileAbsolutePath);
        System.out.println(resourcePath);
        //获得图片转存路径
        String target = dirString+"/"+photoName;
        Path savePath = Paths.get(target);
        System.out.println(savePath);
        //设置图片保存的路径
        String newPhoto = null;
        try {
            //转存图片
            Path path = Files.move(resourcePath, savePath);
            newPhoto = path.toString();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return newPhoto;
    }
}
